// src/store/counter.ts

import { defineStore } from "pinia";

declare global {
  interface Step {
    title: string;
    status?: 'pending' | 'current' | 'success';
    description?: string;
  }
}
/**
 * 产品 Store，用于管理产品相关状态和操作
 *
 * 产品类型说明：
 * 1 - 增值类产品
 * 2 - 金融属性产品
 * 3 - 金融风控
 * 4 - 权益产品
 * 5 - 支付服务
 */
export const useProductStore = defineStore("product", () => {




  /**
   * 产品市场step数据
   *
   */
  const productMarketStepData = <Step[]>([
    {
      title: "厂商名称归一化处理",

    },
    {
      title: "优选目录识别",

    },
    {
      title: "WKB目录识别",

    },
    {
      title: "信息录入",

    },
  ]);
  /**
   * 产品市场流程当前步骤（从0开始）
   */
  const productMarketStep = ref(0);

  /**
   * 产品市场申请对接第二步中选中的行ID
   */
  const selectedRowId = ref<number | string>('');

  /**
   * 产品市场申请对接第二步中选中的行
   */
  const selectedRow = ref<any>(null);

  /**
   * 产品市场列表数据
   */


  // 方法定义
  // ==============================================

  /**
   * 验证是否可以进入下一步
   * @param step - 当前步骤编号
   * @returns Promise，resolve为boolean表示是否允许进入下一步
   */
  const isNextStep = (step: number) => {
    return new Promise((resolve) => {
      // 第一步需要选中一行
      if (step === 0 && !selectedRowId.value) {
        resolve(false);
        return;
      }
      resolve(true);
    });
  };




  // 设置产品市场step步骤
  const setProductMarketStep = (step: number) => {
    productMarketStep.value = step;
  }

  // 监听产品市场step步骤
  watch(() => productMarketStep.value, (newVal) => {
    if (newVal === 0) {
      selectedRowId.value = '';
    }
  })

  // 暴露的状态和方法
  return {
    selectedRowId,
    selectedRow,


    setProductMarketStep,

    productMarketStepData,
    productMarketStep,
  };
});
